package com.itlr.day03.homeWork1;

public class Game {
    
    public static void main(String[] args) {
        System.out.println("========= 游戏开始 =========");
        
        // 创建英雄 李瑞
        Hero hero = new Hero("李瑞", 10, 100000, "人类", 150, 80);
        // 创建怪兽
        Monster monster = new Monster("小怪兽", 10, 800, "小怪兽", 100, 50);
        // 创建装备
        Equip sword = new Equip("16ProMax", 5, "红色", "武器", 50, 10);
        Equip armor = new Equip("书包", 4, "银色", "防具", 0, 40);
        Equip ring = new Equip("铅笔", 3, "金色", "饰品", 20, 5);


        
        // 英雄装备装备
        System.out.println("\n========= 英雄装备阶段 =========");
        hero.addEquip(sword);
        hero.addEquip(armor);
        hero.addEquip(ring);
        
        // 显示角色信息
        System.out.println("\n========= 战前状态 =========");
        hero.show();
        System.out.println();
        monster.show();
        
        // 模拟战斗 - 演示多态性
        System.out.println("\n========= 战斗开始 =========");
        
        // 使用多态 - Role类型的引用指向子类对象
        Role[] fighters = {hero, monster};
        
        int round = 1;
        while (!hero.isDead() && !monster.isDead()) {
            System.out.println("\n--- 第" + round + "回合 ---");
            
            // 英雄攻击怪兽
            hero.attack(monster);
            if (monster.isDead()) {
                System.out.println("怪兽" + monster.getName() + "被击败了！");
                break;
            }
            
            // 怪兽攻击英雄
            monster.attack(hero);
            if (hero.isDead()) {
                System.out.println("英雄" + hero.getName() + "战败了！");
                break;
            }
            
            round++;
            
            // 防止无限循环
            if (round > 20) {
                System.out.println("战斗时间过长，平局！");
                break;
            }
        }
        
        // 战斗结果
        System.out.println("\n========= 战斗结束 =========");
        System.out.println("最终状态：");
        System.out.println("英雄血量：" + hero.getBlood());
        System.out.println("怪兽血量：" + monster.getBlood());

    }

}